package com.wego.converter;

import com.wego.bean.BaseConverter;
import com.wego.bean.ExcelConverter;
import com.wego.domain.details.UserLikeRelationDetails;
import com.wego.domain.dto.UserLikeRelationDTO;
import com.wego.domain.entity.UserLikeRelation;
import com.wego.domain.excel.UserLikeRelationExcel;
import com.wego.domain.vo.UserLikeRelationVO;
import org.mapstruct.Mapper;

@Mapper(componentModel = "spring")
public interface UserLikeRelationConverter extends BaseConverter<UserLikeRelation, UserLikeRelationVO,UserLikeRelationDetails, UserLikeRelationDTO>, ExcelConverter<UserLikeRelation, UserLikeRelationExcel> {
    /**
     * 将UserLikeRelation对象转换为UserLikeRelationDetails对象
     * 该方法会将UserLikeRelation对象中的status编码转换为对应的文本描述
     *
     * @param userLikeRelation 源UserLikeRelation对象，包含用户点赞基本信息和状态编码
     * @return UserLikeRelationDetails对象，包含转换后的用户点赞详细信息，其中status为文本描述
     */
    UserLikeRelationDetails userLikeRelation2userLikeRelationDetails(UserLikeRelation userLikeRelation);

    /**
     * 将UserLikeRelation对象转换为UserLikeRelationExcel对象
     * 该方法会将UserLikeRelation对象中的status编码转换为对应的文本描述，用于Excel导出
     *
     * @param userLikeRelation 源UserLikeRelation对象，包含用户点赞基本信息和状态编码
     * @return UserLikeRelationExcel对象，包含转换后的用户点赞Excel信息，其中status为文本描述
     */
    UserLikeRelationExcel userLikeRelation2userLikeRelationExcel(UserLikeRelation userLikeRelation);

    /**
     * 将UserLikeRelationExcel对象转换为UserLikeRelation对象
     * 该方法会将UserLikeRelationExcel对象中的status文本描述转换为对应的编码
     *
     * @param userLikeRelationExcel 源UserLikeRelationExcel对象，包含从Excel导入的用户点赞信息
     * @return UserLikeRelation对象，包含转换后的用户点赞基本信息，其中status为编码
     */
    UserLikeRelation userLikeRelationExcel2userLikeRelation(UserLikeRelationExcel userLikeRelationExcel);

}
